home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / dist-packages / checkbox / frontend.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-12  |  3.3 KB  |  79 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import pwd
  6. DBUS_INTERFACE_NAME = 'com.ubuntu.checkbox'
  7. DBUS_BUS_NAME = 'com.ubuntu.checkbox'
  8.  
  9. class Frontend(object):
  10.     globals = { }
  11.     
  12.     def __init__(self, function, method):
  13.         self._function = function
  14.         self._method = method
  15.  
  16.     
  17.     def __get__(self, instance, cls = None):
  18.         self._instance = instance
  19.         return self
  20.  
  21.     
  22.     def __call__(self, *args, **kwargs):
  23.         if self.user == 'root':
  24.             return self._function(self._instance, *args, **kwargs)
  25.         return getattr(self, self._method)(*args, **kwargs)
  26.  
  27.     
  28.     def user(self):
  29.         uid = os.getuid()
  30.         user = pwd.getpwuid(uid)[0]
  31.         return user
  32.  
  33.     user = property(user)
  34.     
  35.     def client(self):
  36.         import dbus
  37.         import dbus.mainloop.glib as dbus
  38.         if 'client' in self.globals:
  39.             return self.globals['client']
  40.         dbus.mainloop.glib.DBusGMainLoop(set_as_default = True)
  41.         bus = dbus.SystemBus()
  42.         obj = bus.get_object(DBUS_BUS_NAME, '/checkbox')
  43.         client = dbus.Interface(obj, DBUS_INTERFACE_NAME)
  44.         return self.globals.setdefault('client', client)
  45.  
  46.     client = property(client)
  47.     
  48.     def get_test_result(self, *args, **kwargs):
  49.         TestResult = TestResult
  50.         import checkbox.test
  51.         test = self._instance.test
  52.         if test.user:
  53.             (status, data, duration) = self.client.get_test_result(test.suite, test.name)
  54.             return TestResult(self.test, status, data, float(duration))
  55.         return self._function(self._instance, *args, **kwargs)
  56.  
  57.     
  58.     def get_test_description(self, *args, **kwargs):
  59.         test = self._instance.test
  60.         if test.user:
  61.             return self.client.get_test_description(test.suite, test.name)
  62.         return self._function(self._instance, *args, **kwargs)
  63.  
  64.     
  65.     def get_registry(self, *args, **kwargs):
  66.         if self._instance.user:
  67.             return self.client.get_registry(self._instance.__module__)
  68.         return self._function(self._instance, *args, **kwargs)
  69.  
  70.  
  71.  
  72. def frontend(method):
  73.     
  74.     def wrapper(func):
  75.         return Frontend(func, method)
  76.  
  77.     return wrapper
  78.  
  79.